package com.frank.circle.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.frank.circle.entity.ShareCircle;
import com.frank.circle.req.SaveCircleReq;
import com.frank.circle.req.UpdateCircleReq;
import com.frank.circle.vo.CircleVo;

import java.util.List;

/**
 * @author Frank Zou
 * @version v0.0.1
 * @date 2025/10/15
 * @description
 */
public interface CircleService  {

    /**
     * list all circles
     * @return list of circles
     */
    List<CircleVo> listCircle();

    /**
     * find circle by id
     *
     * @param circleId circle id
     * @return circle
     */
    ShareCircle findOne(Long circleId);

    /**
     * save a new circle
     *
     * @param req save circle request
     * @return true if success, false otherwise
     */
    Boolean saveCircle(SaveCircleReq req);

    /**
     * update a circle
     * @param req update circle request
     * @return true if success, false otherwise
     */
    Boolean updateCircle(UpdateCircleReq req);

    /**
     * delete a circle
     * @param id circle id
     * @return true if success, false otherwise
     */
    Boolean deleteCircle(Long id);
}
